import copy

import jieba.posseg as pseg
import jieba
import re

# 所有词条信息，用于生成词表
topic = """
(1)充分利用线上渠道
在移动互联网时代，许多品牌正是通过互联网渠道迅速扩大知名度并取得成功的。近年来，我国消费者在购物时越来越倾向于选择电商和大卖场这两个渠道。因此，蜜雪冰城不仅要在传统的线下渠道上下功夫，还要积极拓展线上业务。通过电商平台，蜜雪冰城可以触及传统线下渠道难以覆盖的地区，扩大品牌的影响力。同时，线上渠道还具有便捷的配送服务，有助于吸引消费者下单，培养他们的消费习惯，从而增加消费者的忠诚度。
(2)加强社群建设
社群是消费者互动、交流和分享的重要场所。建立社群可以让蜜雪冰城更好地了解消费者的需求和反馈，从而为门店的改进提供宝贵的信息。此外，社群也是维系忠实消费者的重要手段，通过社群可以逐步培养消费者对品牌的感情，增强彼此间的信任感。
(3)优化渠道激励机制
公司应当与各个门店建立良好的沟通渠道，并对门店经理给予物质和精神上的双重激励，以促进每月销售目标的达成。同时，要根据消费者的需求制定切实可行的营销策略。实际上，有效的营销策略是大型企业在竞争激烈的市场环境中脱颖而出的关键。尤其是在快消品行业，机会稍纵即逝。企业需要采用发展的眼光来看待与门店的关系以及沟通问题，努力推动双方的协同发展。例如，可以通过升级门店激励政策，让门店参与分红等方式，调动门店的积极性。同时，也要关注门店的管理工作，加强对门店经理的培训，让他们掌握营销管理的知识体系，并将这些知识应用到实际工作中。通过专业的指导和调整，全面提升门店的整体管理水平，进而提高营销能力。
信息共享是实现营销策略的重要环节。门店经理需要负责向上级汇报门店的实际情况，同时也将上级的要求和规划传达给门店员工。可以使用钉钉、企业微信等数字化管理工具，实现营销活动的全程追踪和管理。
(4)探索新的营销渠道
跨界合作已经成为各种产品营销的常见手法。通过将另一品牌的元素融入自己的产品中，可以创造出独特的联名款式。这种做法在时尚产业尤为常见，例如某些限量版的包包或篮球鞋。对于这种新兴的营销渠道，蜜雪冰城需要更加注重发挥不同类型渠道的数字化传播效果和叠加效应，以及保持长期的合作关系。同时，要构建数字化渠道影响力矩阵，实现多渠道的整合和联动。
请精减一下以上句子在600字左右。
"""
aswer_list = [
    """
    在新时代下，蜜雪冰城需积极利用线上销售渠道来提高知名度和业绩.通过电商平台，能涵盖更多原本无法达到的消费者区域并提升其便利性，以满足消费者日益增长的在线购物趋势。其次，强化社群运营，借助社群力量，更直接地了解客户声音和改进方向，维护并深化顾客对品牌的情感联系。再者，为了持续提高销售额，须建立健全的沟通机制和奖励系统，刺激店长完成目标。最后，应积极探索并尝试新颖的营销方式，比如与其它品牌联合出品联名款，或是通过数字化平台集成多通道的销售网络来提升影响力。
    """,
    """
    蜜雪冰城应利用线上平台，如电商平台拓宽市场并提升品牌影响;同时通过线上方便的消费体验，培养用户购物习惯，增加其品牌忠诚度。 

同时，社群是用户沟通交流的重要平台，打造活跃社群有利于我们深入理解消费者的喜好和反馈，持续强化品牌与用户之间的连接，并培养出更多的忠诚消费者。 

公司与门店之间的有效沟通非常重要，需要通过物质的奖励和精神的认可，驱动店铺的销售业绩目标达成。并且通过根据消费者的购买行为和特点，进行针对性的营销策略设计，保证在市场中的竞争地位。 使用钉钉、企业微信等数字化工具可以帮助公司对门店的活动进行高效的管理和控制。 

另外，我们需要不断尝试不同的营销方式，比如跨品牌合作推出联名款的产品，这种多元化的营销形式可以满足更多消费者的期待，而且也有助于公司的品牌形象年轻化，同时也能够保持与多个领域的品牌有长期的密切合作关系。
    """,
    """
    在互联网时代下，蜜雪冰城需要在深耕线下市场的同时;积极运用线上渠道以扩大影响力和提升消费满意度，通过电商方式覆盖更广的市场并通过便捷的配送服务吸引更多消费群体，并且可通过线上渠道建立良好的客服关系，加强客户体验并培养用户消费习惯，进而提高客户忠诚度。

建立和维护好社交网络平台的顾客社区对于增强消费者黏性及深入了解顾客需求具有重要意义。这不仅能让顾客参与到品牌的改善和建议过程中来，也能使品牌更深入地理解市场需求变化以及消费趋势。而通过社交媒体建立的品牌粉丝团，能直接提高品牌对目标群体的吸引力并提升其对品牌的忠诚度和归属感。

另一方面，优化激励机制也非常重要。与各门店建立良好通信渠道并设定明确的奖励机制能有效激发门店积极性并保障销售目标的达成。通过合理分配利益以及开展各类培训活动，可以帮助提升门店经理的管理技巧和业务水平，同时也应注重及时共享必要的信息以及使用现代化的数字管理平台，以便更好地进行营销管理和活动跟踪。

探索新型营销方式也是当前市场环境下不可或缺的一部分。尤其是通过与其它领域的合作，推出独家商品或者开展独特的推广活动，可以有效创新销售途径，拓宽市场，打造新潮流并在消费者中形成新鲜感，同时也是树立品牌形象并增强消费者认同的有效手段。总的来说，线上线下结合、跨领域合作以及优质的服务都是驱动品牌成功的关键要素。
    """,
    """
    在移动互联网时代，线上渠道的利用对于品牌的扩大知名度至关重要,蜜雪冰城需要在传统的线下渠道之外，积极拓展线上业务，通过电商平台触及更广泛的消费者，使用配送服务吸引消费者下单，培养他们的消费习惯。

社群的建设也关键，让品牌可以更直接地了解消费者需求，并获取对门店改进的意见，同时也是维系忠实消费的重要渠道。以此，品牌可以更好地培养消费者对品牌的感情，增强彼此间的信任感。

另一方面，优化渠道激励机制是必不可少的。公司应与门店建设良好的沟通渠道，给予物质和精神双重激励，提升销售目标完成率。这包括根据消费者需求制定有效的营销策略，如升级门店激励政策，参与分红等方式激励门店积极性，同时重视门店的管理工作，加强培训门店经理。

信息共享也是其中重要的一环，门店经理需要向上层反馈门店的情况并传达上级要求和规划给员工。多用钉钉、企业微信等工具实现营销活动的全程追踪和管理。

最后，探索新的营销渠道，如跨界合作，也可以带来一定的效益。例如，与其他品牌联名，创新产品风格，同时构建数字化渠道影响力矩阵，实现多渠道的整合和联动。蜜雪冰城可以注重发挥和保持不同类型渠道的长期合作关系，实现营销手段的多样化。
    """,
]


# topic = """
# 你好，你早晨吃饭了么
# """
# aswer_list = [
# "你好，你吃了吗","你好，吃饭是你吗","你吃饭了吗","您吃饭了吗"
# ]


class ChineseWords(object):
    def __init__(self, topic, answers, index):
        self.index = index
        self.topic = topic
        self.answers = answers
        self.topic_split_words = self.create_corpus(self.topic)
        self.answer_split_words = self.create_corpuses(self.answers)

    def create_corpus(self, sentence):
        texts = [i for i in sentence.split("\n") if i]
        # print(texts)
        sentences = []
        for text in texts:
            seg_list = jieba.cut(text, cut_all=False)
            words = [i for i in list(seg_list) if i != " "]
            sentences.append(words)
        return sentences

    def create_corpuses(self, words_sentences):
        new_sentences = []
        for sentence in words_sentences:
            texts = [i for i in sentence.split("\n") if i]
            # print(texts)
            sentences = []
            for text in texts:
                seg_list = jieba.cut(text, cut_all=False)
                words = [i for i in list(seg_list) if i != " "]
                sentences.append(words)
            new_sentences.append(sentences)
        # for i in new_sentences:
        #     print("输出",i)
        return new_sentences

    def seq_words_check(self):
        # print("self.answer_split_words:",self.answer_split_words)
        biaodian_list = []
        for answer in self.answer_split_words:
            biaodian = []
            for answer_sentence in answer:
                for i in range(len(answer_sentence)):
                    if answer_sentence[i] in [',', ':', ";", "?", ".", "'", "\""]:
                        print("半角标点信息 {} ".format(answer_sentence[i - 2:i + 3]))
                        biaodian.append(answer_sentence[i - 2:i + 3])
            biaodian_list.append(str(biaodian))
        return biaodian_list

    def words_length_check(self):
        word_sizes = []
        for answer in self.answers:
            word_sizes.append(len(answer.replace("\n", "").replace(" ", "")))
        return word_sizes

    def eq_words_check(self):
        topic_words = [j.strip() for i in self.topic_split_words for j in i if
                       j.strip() not in ['、', '，', '：', "；", "？", "。", "‘", "“", ',', ':', ";", "?", ".", "'", "\","]]
        topic_words = list(set(topic_words))

        # print("topic_words:",topic_words)

        point_words4 = []
        for aswer_sentence in self.answer_split_words:
            point_words = []
            for aswer_words in aswer_sentence:
                for aswer_word in aswer_words:
                    # print("self.topic_split_words[0]",self.topic_split_words[0])
                    if aswer_word.strip() in topic_words:
                        point_words.append(aswer_word)
            point_words4.append(point_words)

        return point_words4, self.answer_split_words, self.topic
        # for point_words


from load_data import topic_data

new_table_data = {}
for index in topic_data:
    topic = topic_data[index][0]
    aswer_list = topic_data[index][1]
    cw = ChineseWords(topic, aswer_list, index)
    # 标点符号检测
    biaodian_list = cw.seq_words_check()
    # 字数统计
    word_sizes = cw.words_length_check()
    # 相同词统计
    excel_data = []

    point_words, answer_split_words, topics = cw.eq_words_check()
    for i in range(len(point_words)):
        if i == 0:
            excel_data.append(["A1", point_words[i], topics])
            excel_data.append(["B1", point_words[i], cw.answers[i]])
        if i == 1:
            excel_data.append(["A2", point_words[i], topics])
            excel_data.append(["B2", point_words[i], cw.answers[i]])
        if i == 2:
            excel_data.append(["A3", point_words[i], topics])
            excel_data.append(["B3", point_words[i], cw.answers[i]])
        if i == 3:
            excel_data.append(["A4", point_words[i], topics])
            excel_data.append(["B4", point_words[i], cw.answers[i]])
        if i == 4:
            excel_data.append(["A5", point_words[i], topics])
            excel_data.append(["B5", point_words[i], cw.answers[i]])

    new_table_data[index] = [excel_data, biaodian_list, word_sizes]
# 近义词统计
